import MessageSenderUtils from '../../libs/message_sender_utils.js';
import Service from '../../libs/service_0_0_6.js';

document.addEventListener('DOMContentLoaded', function () {
	document.querySelector('#button_send_message').addEventListener('click', function (event) {
		let text_elem = document.querySelector('#sended_text')
		var sended_text = text_elem.value
		if (sended_text === '') {
			alert('Введите текст для отправки!')
		} else {
			function sendMessageToComponent(text, recipient) {
				let message = new Object();
				message.data = text
				message.sender = utils.current
				message.recipient = recipient
				utils.log('Отправка сообщения по адресу: ' + message.recipient)
				utils.logOutMessage(message)
				chrome.runtime.sendMessage(JSON.stringify(message),
					function (response) {
						if (chrome.runtime.lastError) {
							utils.log('Ошибка получения ответа');
							alert("От панели DevTools не получено ответа, требуется открыть вкладку 'Panel' инструменты разработчика")
						} else {
							utils.logInMessage(JSON.parse(response))
						}
					});
			}
			sendMessageToComponent(sended_text, 'devtools')
		}
	});
});

chrome.runtime.onMessage.addListener(
	function (request, sender, sendResponse) {
		let inMsg = JSON.parse(request)
		if (inMsg['recipient'] === utils.current) {
			utils.logInMessage(inMsg)
			let outMsg = new Object();
			outMsg.data = 'options OK'
			outMsg.sender = utils.current
			outMsg.recipient = 'content_script'
			utils.log('Отправка ответа по адресу: ' + outMsg.recipient)
			utils.logOutMessage(outMsg)
			sendResponse(JSON.stringify(outMsg));

			let inMsgParse = JSON.parse(inMsg['data'])
			var li = Service.createCustomElement(
				'li', `${inMsgParse['timestamp']} - <${inMsgParse['tagName'].toLowerCase()}>: ${inMsgParse['text']}`, []);
			document.querySelector('.list_li').append(li);
		} else {
			utils.logIgnoreMessage(inMsg)
		}
	}
);

let utils = new MessageSenderUtils('options')